struct ListNode* swapPairs(struct ListNode* head){
    if (NULL == head || NULL == head->next) {
        return head;
    }
    struct ListNode dumbNode = { 0 };
    dumbNode.next = head;
    struct ListNode *cur = &dumbNode;
    struct ListNode *Node1 = NULL;
    struct ListNode *Node2 = NULL;
    while (cur->next && cur->next->next) {
        Node1 = cur->next;
        Node2 = Node1->next;
        cur->next = Node2;
        Node1->next = Node2->next;
        Node2->next = Node1;
        cur = Node1;
    }
    return dumbNode.next;
}